From 5b1e973b2333e838624abf195b3ba9716591f304 Mon Sep 17 00:00:00 2001
From: Gustavo Zacarias <gustavo@zacarias.com.ar>
Date: Sun, 10 Oct 2021 10:15:26 +0200
Subject: [PATCH] Add new targets for iozone:

linux-noaio is for linux targets without AIO (use case: uClibc)
linux-noth is for linux target without threads or AIO

And make largefile support optional via CFLAGS.

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Gilles Talis <gilles.talis@gmail.com>
---
 src/current/makefile | 56 +++++++++++++++++++++++++++++++++++++-------
 1 file changed, 47 insertions(+), 9 deletions(-)

diff --git a/src/current/makefile b/src/current/makefile
index 3a54701..3b17b1b 100644
--- a/src/current/makefile
+++ b/src/current/makefile
@@ -172,10 +172,28 @@ hpux_no_ansi:	iozone_hpux_no.o  libbif.o
 # GNU 'C' compiler Linux build with threads, largefiles, async I/O 
 #
 linux:	iozone_linux.o libasync.o libbif.o fileop_linux.o pit_server.o
-	$(CC)  -O3 $(CFLAGS) iozone_linux.o libasync.o libbif.o -lpthread \
+	$(CC)  $(CFLAGS) $(LDFLAGS) iozone_linux.o libasync.o libbif.o \
+		-lpthread -lrt -o iozone
+	$(CC)  $(CFLAGS) -Dlinux fileop_linux.o -o fileop
+	$(CC)  $(CFLAGS) -Dlinux pit_server.o -o pit_server
+
+#
+# GNU 'C' compiler Linux build with threads, largefiles
+#
+linux-noaio: iozone_linux-noaio.o libbif.o fileop_linux.o pit_server.o
+	$(CC)  $(CFLAGS) $(LDFLAGS) iozone_linux-noaio.o libbif.o \
+		-lpthread -lrt -o iozone
+	$(CC)  $(CFLAGS) -Dlinux fileop_linux.o -o fileop
+	$(CC)  $(CFLAGS) -Dlinux pit_server.o -o pit_server
+
+#
+# GNU 'C' compiler Linux build with largefiles
+#
+linux-noth: iozone_linux-noth.o libbif.o fileop_linux.o pit_server.o
+	$(CC)  $(CFLAGS) $(LDFLAGS) iozone_linux-noth.o libbif.o \
 		-lrt -o iozone
-	$(CC)  -O3 $(CFLAGS) -Dlinux fileop_linux.o -o fileop
-	$(CC)  -O3 $(CFLAGS) -Dlinux pit_server.o -o pit_server
+	$(CC)  $(CFLAGS) -Dlinux fileop_linux.o -o fileop
+	$(CC)  $(CFLAGS) -Dlinux pit_server.o -o pit_server
 
 #
 # GNU 'C' compiler Linux build for powerpc chip with threads, largefiles, async I/O 
@@ -841,13 +859,33 @@ iozone_linux.o:	iozone.c libbif.c libasync.c
 	@echo ""
 	@echo "Building iozone for Linux"
 	@echo ""
-	$(CC) -Wmissing-prototypes -Wall -c -O3 -Dunix -DHAVE_ANSIC_C -DASYNC_IO -DHAVE_PREAD \
-		-DSHARED_MEM -Dlinux -D_LARGEFILE64_SOURCE $(CFLAGS) iozone.c \
+	$(CC) -Wmissing-prototypes -Wall -c -Dunix -DHAVE_ANSIC_C -DASYNC_IO -DHAVE_PREAD \
+		-DSHARED_MEM -Dlinux $(CFLAGS) iozone.c \
 		-DNAME='"linux"' -o iozone_linux.o
-	$(CC) -Wmissing-prototypes -Wall -c -O3 -Dunix -DHAVE_ANSIC_C -DASYNC_IO -D_LARGEFILE64_SOURCE \
+	$(CC) -Wmissing-prototypes -Wall -c -Dunix -DHAVE_ANSIC_C -DASYNC_IO \
+		-DSHARED_MEM -Dlinux $(CFLAGS) libbif.c -o libbif.o
+	$(CC) -Wmissing-prototypes -Wall -c -Dunix -Dlinux -DHAVE_ANSIC_C -DASYNC_IO \
+		$(CFLAGS) libasync.c  -o libasync.o
+
+iozone_linux-noaio.o: iozone.c libbif.c
+	@echo ""
+	@echo "Building iozone for Linux no AIO"
+	@echo ""
+	$(CC) -Wmissing-prototypes -Wall -c -Dunix -DHAVE_ANSIC_C -DHAVE_PREAD \
+		-DSHARED_MEM -Dlinux $(CFLAGS) iozone.c \
+		-DNAME='"linux"' -o iozone_linux-noaio.o
+	$(CC) -Wmissing-prototypes -Wall -c -Dunix -DHAVE_ANSIC_C \
+		-DSHARED_MEM -Dlinux $(CFLAGS) libbif.c -o libbif.o
+
+iozone_linux-noth.o: iozone.c libbif.c
+	@echo ""
+	@echo "Building iozone for Linux with no threads"
+	@echo ""
+	$(CC) -Wmissing-prototypes -Wall -c -Dunix -DHAVE_ANSIC_C -DNO_THREADS -DHAVE_PREAD \
+		-DSHARED_MEM -Dlinux $(CFLAGS) iozone.c \
+		-DNAME='"linux"' -o iozone_linux-noth.o
+	$(CC) -Wmissing-prototypes -Wall -c -Dunix -DHAVE_ANSIC_C -DNO_THREADS \
 		-DSHARED_MEM -Dlinux $(CFLAGS) libbif.c -o libbif.o
-	$(CC) -Wmissing-prototypes -Wall -c -O3 -Dunix -Dlinux -DHAVE_ANSIC_C -DASYNC_IO \
-		-D_LARGEFILE64_SOURCE $(CFLAGS) libasync.c  -o libasync.o 
 
 fileop_AIX.o:	fileop.c
 	@echo ""
@@ -951,7 +989,7 @@ fileop_linux.o:	fileop.c
 	@echo ""
 	@echo "Building fileop for Linux"
 	@echo ""
-	$(CC) -Wall -c -O3 $(CFLAGS) fileop.c -o fileop_linux.o
+	$(CC) -Wall -c $(CFLAGS) fileop.c -o fileop_linux.o
 
 fileop_openbsd.o:	fileop.c
 	@echo ""
-- 
2.27.0

